interface Position {
  top?: string;
  left?: string;
  right?: string;
  bottom?: string;
}
interface SdkInitData {
  appSecret: string;
  appId: string;
  baseUrl: string;
  userId: string;
  speed?: number;
}

// 任务相关信息设置
interface HumanInfo {
  // 人物位置信息
  position?: [number, number, number];
  // 人物旋转信息
  rotation?: [number, number, number] | number;
  // 人物缩放信息
  scale?: [number, number, number];
  // 是否能旋转
  canRotate?: boolean;
  // 是否缩放
  canScale?: boolean;
  // 旋转的范围，在canRotaet为true时生效
  hRotRange?: [number, number];
  humanClassName?: string;
  distance?: number;
  stageClass?: string;
  lightClass?: string;
}

interface Caption {
  // 是否展示
  show?: boolean;
  // 字幕类名
  className?: string;
  // 字幕容器类型
  containerClassName?: string;
  // 自动定位
  autoPosition?: false;
}

interface CaptionData {
  // 已经播报过的内容
  removedValue: string;
  // 剩余内容
  remainValue: string;
  // 当前播报内容
  nowValue: string;
}

enum BroadcastType {
  LiveInformation = 0,
  ExaminingStock = 1,
}
enum BroadcastContentType {
  Greeting = 'greeting',
  Vtuber = 'vtuber',
  User = 'user',
  Button = 'button',
}
enum BroadcastStatus {
  IsFirstEnter = 'IsFirstEnter',
  Autoplay = 'autoplay',
  NotAutoplay = 'notAutoplay',
}
interface BroadcastContent {
  contentType: BroadcastContentType;
  content: CaptionData;
}
interface BroadcastData {
  // 播放到第几条
  index: number;
  // 当前播放的类型
  broadcastType: BroadcastType;
  // 播放内容数组
  broadcastContents: BroadcastContent[];
}
enum VolumeStatus {
  Mute = 0,
  Normal = 1,
}
export {
  type HumanInfo,
  type SdkInitData,
  type Caption,
  type CaptionData,
  type BroadcastData,
  type Position,
  type BroadcastContent,
  BroadcastType,
  VolumeStatus,
  BroadcastContentType,
  BroadcastStatus,
};
